package com.vr.xuecheng.media.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vr.xuecheng.media.model.entity.MediaFiles;
import com.vr.xuecheng.media.model.entity.MediaProcess;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author hzh
 */
public interface IMediaProcessService extends IService<MediaProcess> {

    /**
     * @param mediaFiles 上传的文件
     */
    void addWaitingTask(MediaFiles mediaFiles);

    /**
     * @param shardIndex 当前分片的序号
     * @param shardTotal 执行器分片总数
     * @param processorCount 核心数
     * @return {@code List<MediaProcess> }
     */
    List<MediaProcess> getMediaProcessList(int shardIndex, int shardTotal, int processorCount);

    /**
     * @param id 任务id
     * @return boolean 抢占到任务
     * 抢占任务
     */
    boolean startTask(Long id);

    /**
     * @param mediaProcess 更新的数据
     * @return boolean 是否更新成功
     */
    boolean updateMediaProcessFinishStatus(MediaProcess mediaProcess);

}
